3
תגובות

PRIMARY KEY, INDEX KEY

פתח itamarhadad ,
מה ההבדל בניהם?

יש לי פורום שבניתי ולפורום יש עמודה בעצם של הזמן של ההודעה האחרונה ודרך העמודה הזאת אני מסדר את האשכולות
בעיקרון הPRIMARY KEY שלי זה הID שהוא ממוספר מ0 ,כדאי שהLAST יהיה הPRIMARY?

3 תשובות

avatar ענה intval ב 14 ליוני 2012 #

מפתחות בטבלאות

primary key הוא מזהה ייחודי של השורה בטבלה.
כלומר לא יכולות להיות שני שורות עם אותו ערך בעמודה שהיא primary key
ככה שה ID ישאר primary key ואת ה last אתה יכול לסמן בתור אינדקס, אם אתה עושה שליפות לפיו

avatar ענה itamarhadad ב 14 ליוני 2012 #

אבל שמתי לב שהPRIMARY KEY גם מסדר את הטבלה בסדר של הID ואם הוא היה הLAST
זה היה יכול להאיץ את השליפה??

ולא הבנתי למה הוא מתכוון ,הוא אומר שיש 2 סוגי INDEX איך אני אני יודע שיש לי את האינדקס הטוב?
"ישנם שני סוגי טבלאות. טבלאות עם clustered index וטבלאות בלי clustered index שנקראות טבלאות Heap. (זה שיש לטבלה אינדקסים זה נחמד, אבל כל עוד אין לה clustered index היא מוגדרת כ Heap)."

avatar ענה intval ב 14 ליוני 2012 #

clustered index אומר שזה גם שומר את הנתונים בדיסק מסודרים לפי אותו אינדקס ככה שהגישה אליהם יותר מהירה. ה clustered index הוא תמיד ה primary key.

אם אתה יכול להגדיר את העמודה last בתור מפתח ראשי (primary key) זה אומר שהעמודה id שלך מיותרת, מה שבתורו אומר שהעמודה last עצמה מיותרת כיוון שאתה פשוט יכול להישתמש בעמודה id במקומה.

אתה בטוח שאתה לא מספס את הקטע ש primary key זה מזהה ייחודי וזה אומר שלא יכול להיות שני שורות בטלבה שיש להם אותו ערך בעמודה id ? אם לא יכולות להיות לך שני שורות שה last שלהם אותו דבר - אולי העמודה last מיותרת ואתה צריך להישתמש ב ID במקומם בשליפות.